package caralibrobd;

import java.io.Serializable;
import java.util.Date;
import java.util.HashMap;

//<editor-fold defaultstate="expanded" desc="Clase Publicacion">
/**
 *
 * @author yaiza y merce
 */
public class Publicacion implements Serializable {

    private Date data;
    private String texto;
    private int meGusta = 0;
    private Perfil autor;
    private HashMap<String, Perfil> gustalleA;
    private HashMap<String, Comentario> comentario;

    //<editor-fold defaultstate="collapsed" desc="Contructor Publicación">
    /**
     *
     * @param data
     * @param texto
     * @param autor
     */
    public Publicacion(Date data, String texto, Perfil autor) {
        this.data = data;
        this.texto = texto;
        this.autor = autor;
        this.gustalleA = new HashMap<>();
        this.comentario = new HashMap<>();
    }
    //</editor-fold>
//
    //<editor-fold defaultstate="collapsed" desc="Atributos simples set/get">

    /**
     *
     * @return
     */
    public Date getData() {
        return data;
    }

    /**
     *
     * @param data
     */
    public void setData(Date data) {
        this.data = data;
    }

    /**
     *
     * @return
     */
    public String getTexto() {
        return texto;
    }

    /**
     *
     * @param texto
     */
    public void setTexto(String texto) {
        this.texto = texto;
    }

    /**
     *
     * @return
     */
    public Perfil getAutor() {
        return autor;
    }

    /**
     *
     * @param autor
     */
    public void setAutor(Perfil autor) {
        this.autor = autor;
    }

    /**
     *
     * @return
     */
    public int getMeGusta() {
        return meGusta;
    }

    /**
     *
     * @param meGusta
     */
    public void setMeGusta(int meGusta) {
        this.meGusta = meGusta;
    }
    //</editor-fold>
//
    //<editor-fold defaultstate="collapsed" desc="Atributos HashMap get/set">

    /**
     *
     * @return
     */
    public HashMap<String, Perfil> getGustalleA() {
        return gustalleA;
    }

    /**
     *
     * @param p
     */
    public void setGustalleA(HashMap<String, Perfil> p) {
        this.gustalleA = p;
    }

    /**
     *
     * @return
     */
    public HashMap<String, Comentario> getComentario() {
        return comentario;
    }

    /**
     *
     * @param comentario
     */
    public void setComentario(HashMap comentario) {
        this.comentario = comentario;
    }
    //</editor-fold>

    /**
     *
     * @param p
     */
    public void engadirMeGusta(Perfil aPerfil, String keyPub) {
        if (!gustalleA.containsKey(keyPub)) {
            gustalleA.put(keyPub, aPerfil);
            meGusta = gustalleA.size();
        }
    }

    /**
     *
     * @param c
     */
    public void engadirComentario(Comentario aComentario) {
        String key = String.valueOf(aComentario.getData().getTime())
                     + aComentario.getAutor().getNome();
        if (!comentario.containsKey(key)) {
            comentario.put(key, aComentario);
        }
    }
//</editor-fold>

}
